هسته لینوکس (Kernel) قلب سیستمعامل است و چهار قابلیت اصلی را مدیریت میکند: مدیریت پردازشها، مدیریت حافظه، مدیریت دستگاهها و سیستم فایل. برای افزودن قابلیتهای جدید به هسته (مانند پشتیبانی از سختافزار جدید یا یک سیستم فایل جدید)، دو روش وجود دارد: کامپایل کردن مجدد هسته و استفاده از ماژولها.
ماژول یک قطعه کد است که میتواند بهصورت پویا (Dynamic) به هسته لینوکس اضافه یا از آن حذف شود، بدون اینکه نیاز به راهاندازی مجدد سیستم یا کامپایل مجدد کل هسته باشد. ماژولها معمولاً برای افزودن درایورهای سختافزاری، پشتیبانی از سیستمفایلهای جدید یا قابلیتهای امنیتی استفاده میشوند.
gcc، make) دارد.قابلیت بارگذاری ماژولهای پویا، یک نقطه ضعف امنیتی نیز ایجاد کرده است. بدافزارهای پیشرفته به نام Rootkit میتوانند خود را به صورت یک ماژول مخرب در هسته بارگذاری کنند و از دید ابزارهای عادی پنهان بمانند. این یکی از دلایل اصلی اهمیت امضای دیجیتال ماژولها و محدود کردن بارگذاری ماژولهای غیرمجاز است.
برای مدیریت ماژولهای هسته در لینوکس، از دستورات زیر استفاده میشود:
lsmod (نمایش ماژولهای بارگذاریشده)کاربرد: لیست تمام ماژولهای بارگذاریشده در هسته را به همراه وابستگیهای آنها نمایش میدهد.
توضیح ستونها: Module (نام ماژول)، Size (اندازه به بایت)، Used by (تعداد استفادهکنندگان و نام ماژولهای وابسته).
modinfo (نمایش اطلاعات یک ماژول)کاربرد: اطلاعات دقیق یک ماژول خاص را نمایش میدهد، مانند نویسنده، توضیحات، وابستگیها و پارامترهای قابل تنظیم.
insmod (بارگذاری ماژول)کاربرد: یک ماژول را مستقیماً در هسته بارگذاری میکند. این دستور وابستگیها را بهطور خودکار حل نمیکند و اگر ماژول به ماژول دیگری وابسته باشد، باید آن را نیز جداگانه بارگذاری کنید.
نکته: معمولاً از modprobe به جای insmod استفاده میشود، زیرا modprobe وابستگیها را بهطور خودکار مدیریت میکند.
modprobe (بارگذاری هوشمند ماژول)
کاربرد: ماژول را به همراه همه وابستگیهایش بارگذاری میکند. این دستور از فایلهای پیکربندی در /etc/modprobe.d/ و /lib/modules/ برای پیدا کردن ماژولها استفاده میکند.
گزینههای مهم modprobe:
-r یا --remove → حذف (Unload) ماژول از هسته.-v یا --verbose → نمایش جزئیات بیشتر.-n یا --dry-run → شبیهسازی اجرا بدون تغییر واقعی.-c → نمایش تنظیمات فعلی modprobe.| دستور | کاربرد |
|---|---|
lsmod |
نمایش لیست ماژولهای بارگذاریشده در هسته |
modinfo [module] |
نمایش اطلاعات دقیق یک ماژول خاص |
sudo insmod [file.ko] |
بارگذاری مستقیم ماژول (بدون مدیریت وابستگیها) |
sudo modprobe [module] |
بارگذاری ماژول به همراه همه وابستگیها (روش پیشنهادی) |
sudo modprobe -r [module] |
حذف (Unload) ماژول از هسته |
sudo modprobe -v [module] |
بارگذاری ماژول با نمایش جزئیات |
insmod و modprobe| ویژگی | insmod |
modprobe |
|---|---|---|
| مدیریت وابستگیها | ❌ خیر (فقط ماژول مشخص شده را بارگذاری میکند) | ✅ بله (همه وابستگیها را بهطور خودکار بارگذاری میکند) |
| نیاز به مسیر کامل | ✅ بله (باید مسیر فایل .ko را مشخص کنید) |
❌ خیر (فقط نام ماژول کافی است) |
| استفاده از مخازن ماژول | ❌ خیر | ✅ بله (از /lib/modules/ استفاده میکند) |
| کاربرد اصلی | توسعه و تست ماژولهای جدید | مدیریت روزمره ماژولها در سیستم |
توضیح: ماژول vfat (پشتیبانی از سیستم فایل FAT) را بارگذاری و سپس حذف میکند.
برای شناسایی ماژولهای مخرب (Rootkit) در لینوکس، ابزارهای تخصصی وجود دارند. برخی از معروفترین آنها:
chkrootkit (Check Rootkit): یک ابزار خط فرمان برای شناسایی روتکیتهای معروف.
rkhunter (Rootkit Hunter): ابزار قدرتمند دیگری برای اسکن روتکیتها و بدافزارها.
lsmod با دقت: بررسی دستی ماژولهای بارگذاریشده و جستجوی نامهای غیرعادی.
dmesg: بررسی پیامهای هسته برای یافتن فعالیتهای مشکوک هنگام بارگذاری ماژول.
روتکیتها معمولاً خود را به صورت ماژولهای هسته پنهان میکنند و از دستور lsmod پنهان میشوند. به همین دلیل، ابزارهای تخصصی مانند chkrootkit و rkhunter برای شناسایی آنها طراحی شدهاند.
lsmod (نمایش)، modinfo (اطلاعات)، modprobe (بارگذاری/حذف هوشمند)، insmod (بارگذاری ساده).chkrootkit و rkhunter برای شناسایی ماژولهای مخرب.lsmod ماژولهای بارگذاریشده در سیستم خود را مشاهده کنید.modinfo اطلاعات یکی از ماژولها (مثل modinfo vfat) را بررسی کنید.vfat را با modprobe بارگذاری کرده و سپس با modprobe -r حذف کنید.lsmod | grep ماژولهای مرتبط با شبکه یا USB را پیدا کنید.chkrootkit را نصب کرده و سیستم خود را اسکن کنید.